package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc CalculateTargetCompletionConversionScoreComReqDto
 * @使用场景
 */
@Data
public class CalculateTargetCompletionConversionScoreComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 量化评分类型 COMPLETION_DEGREE:完成度 EVERY_ADD_AND_SUB:每加减 ACHIEVEMENT_LEVEL:成果等级
     */
    @NotNull(message = "量化评分类型不能为空")
    @ApiModelProperty("量化评分类型")
    private String quantitativeRatingType;

    /**
     * 是否上不封顶 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否上不封顶不能为空")
    @ApiModelProperty("是否上不封顶")
    private String isCeilingScore;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @NotNull(message = "冗余指标业务类型不能为空")
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 权重分值
     */
    @NotNull(message = "权重分值不能为空")
    @ApiModelProperty("权重分值")
    private Double weightScore;

    /**
     * 实际值（数值）
     */
    @NotNull(message = "实际值（数值）不能为空")
    @ApiModelProperty("实际值（数值）")
    private Double actualValue;

    /**
     * 目标起始值
     */
    @ApiModelProperty("目标起始值")
    private Double evaTargetStartValue;

    /**
     * 目标目标值
     */
    @ApiModelProperty("目标目标值")
    private Double evaTargetValue;

    /**
     * 目标诊断值
     */
    @ApiModelProperty("目标诊断值")
    private Double evaTargetDiagnosticValue;

    /**
     * 小数点规则
     */
    @NotNull(message = "小数点规则不能为空")
    @ApiModelProperty("小数点规则")
    private Long decimalPointRules;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @NotNull(message = "小数最后一位规则不能为空")
    @ApiModelProperty("小数最后一位规则")
    private String decimalDigitsLastRules;

}
